// 在新页面的对应 Page 对象的 JavaScript 文件中
Page({
    data: {
        srcI: '',
        hiddenModal: true,//是否隐藏输入框
        itemValue: "",
        itemTitle: "",
        inputValue: "", // 用于存储输入框的值
        amplifyVisable: false,//是否放大
        amplifySrc: '',//被放大的图片地址
        userInfo: {},
    },
    onShow: function () {
        let loginUser = wx.getStorageSync('loginUser');//获取登录用户的信息
        console.log("user==>", loginUser);
        this.setData({
            'userInfo': loginUser,
        })
    },
    navigateBack: function () {
        wx.navigateBack();
    },
    showModal: function (e) {
        if (e.currentTarget.dataset.title == '宇颀id') {
            wx.showToast({
                title: '宇颀id是唯一标识，不可修改',
                icon: 'none'
            });
            return;
        }
        this.setData({
            'hiddenModal': false,
            'itemValue': e.currentTarget.dataset.itemValue ? e.currentTarget.dataset.itemValue : '',
            'itemTitle': e.currentTarget.dataset.title
        });
    },
    hideModal: function () {
        this.setData({
            'hiddenModal': true
        });
    },
    handleInput: function (e) {
        // 当输入框内容发生变化时，更新 data 中的 inputValue
        this.setData({
            inputValue: e.detail.value
        });
    },
    editForm: function () {
        // 获取输入值
        const inputValue = this.data.inputValue;
        // 关闭弹窗
        this.hideModal();
        // 处理输入的值，比如保存或其他逻辑
        console.log("标题：", this.data.itemTitle);
        console.log('输入值:', inputValue);
        if (!inputValue) {
            wx.showToast({
                title: '输入不能为空',
                icon: 'error',
                duration: 2000
            });
            return;
        }
        if (this.data.itemTitle == "昵称") {
            this.setData({
                'userInfo.username': inputValue
            });
        } else if (this.data.itemTitle == "头像") {
            this.setData({
                'userInfo.avatar': inputValue
            });
        } else if (this.data.itemTitle == "背景图片") {
            this.setData({
                'userInfo.bgImageUrl': inputValue
            });
        } else if (this.data.itemTitle == "个性签名") {
            this.setData({
                'userInfo.signature': inputValue
            });
        }
    },

    scroll(e) {
        // console.log(e)
    },

    chooseAvatar() {
        var that = this;
        wx.chooseMedia({
            count: 1,
            mediaType: ['image'],
            sourceType: ['camera', 'album'],
            success: (res) => {
                that.setData({
                    'userInfo.avatar': res.tempFiles[0].tempFilePath,
                    'srcI': res.tempFiles[0].tempFilePath
                });
                // console.log(res.tempFiles[0].tempFilePath);
                setTimeout(() =>{
                    that.uploadAvatar();
                }, 200);
            },

            fail: (err) => {
                //未选择图片
                wx.showToast({
                    title: '未上传',
                    icon: 'error',
                    duration: 2000,
                })
            }
        });
    },

    //放大背景图片
    amplifyImg(e){
        console.log("当前要放大的图片为==>", e.currentTarget.dataset.amplifysrc);
        this.setData({
            'amplifyVisable': true,
            'amplifySrc': e.currentTarget.dataset.amplifysrc
        });
    },
    concelAmplify(){
        this.setData({
            'amplifyVisable': false,
            'amplifySrc': ''
        });
    },
    //上传头像，修改头像
    uploadAvatar() {
        console.log("开始执行updateAvatar方法");
        var that = this;
        // 上传头像到后端保存
        // 创建一个 FormData 对象
        var tempUser = this.data.userInfo;
        let dateString = this.data.userInfo.createTime.split("T")[0] + " " + this.data.userInfo.createTime.split("T")[1].split(".")[0];
        wx.uploadFile({
            url: 'http://localhost:8282/user/uploadBgImg',
            filePath: that.data.srcI,
            name: 'file',
            header: { 'Content-Type': 'multipart/form-data' },
            formData: {
                'id': tempUser.id,
            },
            success: function (res) {
                var resData = JSON.parse(res.data);//wx.uploadFile回调函数返回的值是字符串，要先转为json数据
                if (resData.code == 200) {
                    // 上传成功
                    let avatar = resData.data.url;//后端返回的头像地址
                    that.setData({
                        'userInfo.avatar': avatar
                    });
                    wx.setStorageSync('loginUser', that.data.userInfo);
                    console.log("头像上传成功！");
                    //上面是上传
                    //提交修改
                    //这里开始修改数据库里用户的头像
                    setTimeout(() => {//延时0.2秒再执行修改的方法
                        that.confirmEdit();//修改用户数据
                    }, 200);
                }else{
                    wx.showToast({
                      title: resData.desc,
                      icon: 'none'
                    })
                }
            },
            fail: function (err) {
                // 上传失败
                console.error('上传失败', err);
            }
        });
    },

    //将当前修改的内容上传到数据中心（数据库）
    confirmEdit: function () {
        var that = this;
        wx.request({
            url: 'http://localhost:8282/public/updatePeople',
            method: 'POST',
            data: this.data.userInfo, // 要传递的数据
            header: {
                'content-type': 'application/json' // 指定请求的内容类型
            },
            success: function (res) {
                // 请求成功的处理
                console.log('请求成功:', res);
                if (res.data.code == 200) {
                    that.setData({
                        'userInfo': res.data.data,
                    });
                    wx.setStorageSync('loginUser', that.data.userInfo);
                    wx.showToast({
                        title: '修改成功',
                        icon: 'success',
                        duration: 2000
                    });
                }
                else {
                    wx.showToast({
                        title: '修改出现异常',
                        icon: 'error',
                        duration: 2000
                    });
                }
            },
            fail: function (err) {
                // 请求失败的处理
                console.error('请求失败:', err);
                wx.showToast({
                    title: '修改出现异常',
                    icon: 'error',
                    duration: 2000
                });
            }
        })

    }
});
